package com.thinkgem.jeesite.modules.act.service;

import java.util.Map;

import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;

/**
 * TODO:工作流核心接口
 *
 * @author 作者：lgx
 * @date 创建时间：2016年3月23日
 * @version V1.0
 */
public abstract interface ActCodeServiceInterface {


	/**
	 * 中止流程(特权人直接审批通过等)
	 * 
	 * @param taskId
	 */
	public void endProcess(String taskId) throws Exception;

	/**
	 * 根据任务ID获取流程定义
	 * 
	 * @param taskId
	 *            任务ID
	 * @return
	 * @throws Exception
	 */
	public ProcessDefinitionEntity findProcessDefinitionEntityByTaskId(
			String taskId) throws Exception;
	
	
	/**
	 * 流程转向操作
	 * 
	 * @param taskId
	 *            当前任务ID
	 * @param activityId
	 *            目标节点任务ID
	 * @param variables
	 *            流程变量
	 * @throws Exception
	 */
	public void turnTransition(String taskId, String activityId,
			Map<String, Object> variables) throws Exception;
	
	/**
	 * 转办流程
	 * 
	 * @param taskId
	 *            当前任务节点ID
	 * @param userCode
	 *            被转办人Code（帐号）
	 */
	public void transferAssignee(String taskId, String userCode);
}
